Dowiedz si臋, jak us艂ugi opakowuj膮ce stanowi膮 strategiczne podej艣cie do integracji i modernizacji system贸w legacy, pozwalaj膮c firmom wykorzysta膰 istniej膮ce inwestycje przy jednoczesnym wdra偶aniu nowych technologii.
Integracja system贸w legacy: Uwalnianie warto艣ci dzi臋ki us艂ugom opakowuj膮cym
W dzisiejszym, szybko ewoluuj膮cym krajobrazie technologicznym, organizacje nieustannie poszukuj膮 sposob贸w na adaptacj臋 i innowacje. Jednym z najwi臋kszych wyzwa艅, przed jakimi staje wiele firm, jest integracja ich istniej膮cych, czyli "odziedziczonych" (legacy), system贸w z nowszymi technologiami. Te systemy legacy, cz臋sto maj膮ce kilkadziesi膮t lat, mog膮 przechowywa膰 kluczowe dane biznesowe i funkcjonalno艣ci, ale mo偶e im brakowa膰 elastyczno艣ci i interoperacyjno艣ci wymaganych do rozwoju w nowoczesnym 艣rodowisku. W艂a艣nie tutaj do gry wchodzi moc us艂ug opakowuj膮cych (wrapper services).
Czym s膮 us艂ugi opakowuj膮ce?
Us艂ugi opakowuj膮ce, w kontek艣cie integracji system贸w legacy, dzia艂aj膮 jak most pomi臋dzy starszymi, cz臋sto monolitycznymi systemami a nowocze艣niejszymi platformami, takimi jak aplikacje oparte na chmurze, architektury mikrous艂ug czy interfejsy mobilne. W istocie, us艂uga opakowuj膮ca to komponent oprogramowania, kt贸ry hermetyzuje funkcjonalno艣膰 systemu legacy, udost臋pniaj膮c j膮 jako dobrze zdefiniowany, standardowy interfejs, zazwyczaj API (Application Programming Interface). Pozwala to nowszym aplikacjom na interakcj臋 z systemem legacy bez konieczno艣ci bezpo艣redniej modyfikacji jego kodu 藕r贸d艂owego.
Rozwa偶my globaln膮 firm臋 logistyczn膮. Jej g艂贸wny system zarz膮dzania zam贸wieniami mo偶e by膰 aplikacj膮 dzia艂aj膮c膮 na komputerze typu mainframe. Bez us艂ug opakowuj膮cych integracja tego systemu z now膮 aplikacj膮 mobiln膮 do 艣ledzenia przesy艂ek by艂aby skomplikowanym i czasoch艂onnym przedsi臋wzi臋ciem, potencjalnie wymagaj膮cym znacznych zmian w kodzie mainframe. Dzi臋ki us艂ugom opakowuj膮cym funkcjonalno艣膰 mainframe (np. pobieranie szczeg贸艂贸w zam贸wienia, aktualizacja statusu przesy艂ki) jest abstrahowana za pomoc膮 API. Aplikacja mobilna nast臋pnie komunikuje si臋 z API, kt贸re z kolei komunikuje si臋 z mainframe, chroni膮c aplikacj臋 przed zawi艂o艣ciami systemu legacy.
Kluczowe korzy艣ci z u偶ywania us艂ug opakowuj膮cych
- Ochrona istniej膮cych inwestycji: Us艂ugi opakowuj膮ce pozwalaj膮 firmom wykorzysta膰 istniej膮ce inwestycje w systemy legacy. Zamiast podejmowa膰 drogie i ryzykowne projekty typu "rip-and-replace", mog膮 one nadal korzysta膰 z funkcjonalno艣ci tych system贸w.
- Zmniejszone ryzyko: Izoluj膮c system legacy, us艂ugi opakowuj膮ce minimalizuj膮 ryzyko zwi膮zane z modernizacj膮. Zmiany w us艂udze opakowuj膮cej nie wp艂ywaj膮 bezpo艣rednio na system legacy, co zmniejsza ryzyko b艂臋d贸w i przestoj贸w.
- Skr贸cony czas wprowadzania produkt贸w na rynek: Us艂ugi opakowuj膮ce przyspieszaj膮 rozw贸j i wdra偶anie nowych aplikacji i us艂ug, zapewniaj膮c 艂atwo dost臋pn膮 funkcjonalno艣膰 system贸w legacy. Mo偶e to znacznie skr贸ci膰 czas potrzebny na wprowadzenie nowych produkt贸w i funkcji na rynek.
- Poprawiona interoperacyjno艣膰: Us艂ugi opakowuj膮ce umo偶liwiaj膮 p艂ynn膮 integracj臋 mi臋dzy systemami legacy a nowoczesnymi aplikacjami, u艂atwiaj膮c wymian臋 danych i automatyzacj臋 proces贸w na r贸偶nych platformach i technologiach. Jest to szczeg贸lnie wa偶ne w dzisiejszym, po艂膮czonym 艣rodowisku biznesowym.
- Zwi臋kszona zwinno艣膰 i elastyczno艣膰: Oddzielaj膮c system legacy od nowych aplikacji, us艂ugi opakowuj膮ce zapewniaj膮 wi臋ksz膮 zwinno艣膰 i elastyczno艣膰 w reagowaniu na zmieniaj膮ce si臋 potrzeby biznesowe. Nowe funkcje i funkcjonalno艣ci mog膮 by膰 dodawane bez zak艂贸cania podstawowej infrastruktury legacy.
- Uproszczona modernizacja: Us艂ugi opakowuj膮ce mog膮 by膰 krokiem w kierunku pe艂niejszej strategii modernizacji. W miar臋 tworzenia nowych funkcjonalno艣ci, mog膮 one by膰 integrowane za pomoc膮 tych samych us艂ug opakowuj膮cych, ostatecznie zast臋puj膮c funkcjonalno艣ci legacy bez masowej, destrukcyjnej zmiany.
Jak dzia艂aj膮 us艂ugi opakowuj膮ce: Dog艂臋bna analiza
Proces tworzenia i wdra偶ania us艂ug opakowuj膮cych zazwyczaj obejmuje kilka kluczowych krok贸w:
- Analiza systemu legacy: Pierwszym krokiem jest dok艂adne zrozumienie funkcjonalno艣ci, struktur danych i interfejs贸w systemu legacy. Obejmuje to identyfikacj臋 konkretnych funkcji, kt贸re musz膮 zosta膰 udost臋pnione, oraz danych, do kt贸rych potrzebny jest dost臋p.
- Projektowanie API: Na podstawie analizy projektowane jest dobrze zdefiniowane API. API powinno by膰 zaprojektowane tak, aby by艂o 艂atwe do zrozumienia i u偶ycia przez aplikacje, kt贸re b臋d膮 z niego korzysta膰. RESTful API s膮 cz臋stym wyborem, zapewniaj膮c standardowy spos贸b interakcji z systemem legacy.
- Rozw贸j us艂ugi opakowuj膮cej: Tworzona jest sama us艂uga opakowuj膮ca. Polega to na napisaniu kodu, kt贸ry t艂umaczy 偶膮dania z API na dzia艂ania zrozumia艂e dla systemu legacy oraz t艂umaczy odpowiedzi z systemu legacy na format, kt贸ry API mo偶e zwr贸ci膰.
- Testowanie i wdra偶anie: Us艂uga opakowuj膮ca jest dok艂adnie testowana, aby upewni膰 si臋, 偶e dzia艂a poprawnie i 偶e dane s膮 dok艂adnie t艂umaczone mi臋dzy nowoczesnymi aplikacjami a systemem legacy. Po zako艅czeniu test贸w us艂uga jest wdra偶ana i konfigurowana do odpowiedniego zarz膮dzania ruchem.
- Monitorowanie i utrzymanie: Ci膮g艂e monitorowanie jest kluczowe, aby zapewni膰, 偶e us艂uga opakowuj膮ca dzia艂a zgodnie z oczekiwaniami. Obejmuje to monitorowanie wydajno艣ci, identyfikowanie i rozwi膮zywanie problem贸w oraz utrzymanie us艂ugi w miar臋 ewolucji systemu legacy i zmian potrzeb biznesowych.
Praktyczny przyk艂ad: Wyobra藕my sobie instytucj臋 bankow膮 z g艂贸wnym systemem bankowym zbudowanym na komputerze typu mainframe. Chce ona stworzy膰 aplikacj臋 bankowo艣ci mobilnej dla swoich klient贸w. Mo偶na stworzy膰 us艂ug臋 opakowuj膮c膮, kt贸ra hermetyzuje funkcj臋 pobierania salda konta z mainframe. Aplikacja mobilna wysy艂a 偶膮danie do us艂ugi opakowuj膮cej. Us艂uga opakowuj膮ca wywo艂uje system mainframe w celu uzyskania informacji o saldzie, a nast臋pnie formatuje i zwraca te informacje do aplikacji mobilnej, kt贸ra wy艣wietla saldo konta klienta. System legacy mainframe pozostaje nietkni臋ty, a nowa aplikacja dostarcza klientom nowe funkcjonalno艣ci.
Kwestie architektoniczne i najlepsze praktyki
Efektywne projektowanie i wdra偶anie us艂ug opakowuj膮cych wymaga starannego rozwa偶enia kilku zasad architektonicznych i najlepszych praktyk:
- Zasady projektowania API: Przestrzegaj ustalonych zasad projektowania API, takich jak RESTful lub gRPC, aby zapewni膰, 偶e API jest 艂atwe w u偶yciu, dobrze udokumentowane i 艂atwe w utrzymaniu. Rozwa偶 wersjonowanie, aby zarz膮dza膰 zmianami i unika膰 problem贸w z kompatybilno艣ci膮 u istniej膮cych klient贸w.
- Bezpiecze艅stwo: Wdr贸偶 solidne 艣rodki bezpiecze艅stwa, w tym uwierzytelnianie, autoryzacj臋 i szyfrowanie, aby chroni膰 wra偶liwe dane i zapewni膰, 偶e tylko autoryzowane aplikacje mog膮 uzyska膰 dost臋p do systemu legacy. Rozwa偶 uwierzytelnianie oparte na tokenach dla dodatkowego bezpiecze艅stwa.
- Optymalizacja wydajno艣ci: Zoptymalizuj us艂ug臋 opakowuj膮c膮 pod k膮tem wydajno艣ci, bior膮c pod uwag臋 obci膮偶enie, kt贸re b臋dzie obs艂ugiwa膰. Mechanizmy buforowania i wydajne transformacje danych mog膮 poprawi膰 czas odpowiedzi i skalowalno艣膰. Dok艂adnie przetestuj us艂ug臋 pod obci膮偶eniem.
- Obs艂uga b艂臋d贸w i logowanie: Wdr贸偶 kompleksowe mechanizmy obs艂ugi b艂臋d贸w i logowania, aby przechwytywa膰 b艂臋dy, diagnozowa膰 problemy i 艣ledzi膰 wydajno艣膰 us艂ugi. W艂a艣ciwe logowanie pomaga w rozwi膮zywaniu problem贸w i ci膮g艂ym doskonaleniu.
- Monitorowanie i alertowanie: Wdr贸偶 proaktywne monitorowanie i alertowanie, aby identyfikowa膰 problemy z wydajno艣ci膮, naruszenia bezpiecze艅stwa i inne potencjalne problemy. U偶ywaj pulpit贸w nawigacyjnych do monitorowania kluczowych metryk i wyzwalania alert贸w po przekroczeniu prog贸w.
- Odsprz臋ganie i lu藕ne powi膮zanie: Projektuj us艂ug臋 opakowuj膮c膮 tak, aby by艂a lu藕no powi膮zana zar贸wno z systemem legacy, jak i z aplikacjami, kt贸re z niej korzystaj膮. Minimalizuje to zale偶no艣ci i u艂atwia utrzymanie i ewolucj臋 systemu w czasie.
- Idempotentno艣膰: Tam, gdzie to stosowne, projektuj wywo艂ania API tak, aby by艂y idempotentne, co oznacza, 偶e wielokrotne ich wywo艂anie ma taki sam efekt jak jednokrotne. Pomaga to zapobiega膰 uszkodzeniu danych i zapewnia ich integralno艣膰, zw艂aszcza w przypadku awarii sieci.
- Skalowalno艣膰: Projektuj z my艣l膮 o skalowalno艣ci. Mo偶e to obejmowa膰 u偶ycie r贸wnowa偶enia obci膮偶enia, skalowania horyzontalnego lub innych technik, aby zapewni膰, 偶e us艂uga opakowuj膮ca poradzi sobie z rosn膮cym wolumenem ruchu.
- Dokumentacja: Zapewnij kompleksow膮 dokumentacj臋 API, w tym przyk艂ady u偶ycia, formaty danych i kody b艂臋d贸w. Dobra dokumentacja promuje adopcj臋 i zmniejsza wysi艂ek wymagany do integracji z us艂ug膮 opakowuj膮c膮.
Typowe przypadki u偶ycia us艂ug opakowuj膮cych
Us艂ugi opakowuj膮ce mog膮 by膰 stosowane w szerokim zakresie scenariuszy biznesowych:
- Integracja system贸w legacy z aplikacjami chmurowymi: Umo偶liwiaj膮 systemom legacy p艂ynn膮 interakcj臋 z aplikacjami opartymi na chmurze, takimi jak systemy CRM, ERP i platformy analityki danych.
- Umo偶liwienie dost臋pu mobilnego: Zapewniaj膮 aplikacjom mobilnym dost臋p do funkcjonalno艣ci i danych przechowywanych w systemach legacy, poprawiaj膮c zaanga偶owanie klient贸w i produktywno艣膰 pracownik贸w. (np. aplikacja mobilna do 艣ledzenia przesy艂ek w globalnej firmie logistycznej)
- U艂atwianie integracji danych: Umo偶liwiaj膮 integracj臋 danych z system贸w legacy z innymi 藕r贸d艂ami danych, u艂atwiaj膮c analiz臋 danych, raportowanie i business intelligence. (np. konsolidacja danych z r贸偶nych regionalnych system贸w sprzeda偶y w centralnej platformie BI)
- Wspieranie architektur mikrous艂ug: Udost臋pniaj膮 funkcjonalno艣膰 system贸w legacy jako mikrous艂ugi, umo偶liwiaj膮c firmom budowanie bardziej modu艂owych, skalowalnych i odpornych aplikacji. Mikrous艂ugi to odr臋bne, niezale偶nie wdra偶ane jednostki.
- Modernizacja g艂贸wnych system贸w bankowych: Pozwalaj膮 bankom modernizowa膰 swoje g艂贸wne systemy bankowe bez zak艂贸ce艅 zwi膮zanych z ca艂kowit膮 wymian膮 systemu. Us艂ugi opakowuj膮ce mog膮 u艂atwi膰 integracj臋 z nowymi aplikacjami skierowanymi do klienta.
- Integracja z urz膮dzeniami IoT: Umo偶liwiaj膮 systemom legacy interakcj臋 z danymi z urz膮dze艅 Internetu Rzeczy (IoT), otwieraj膮c nowe mo偶liwo艣ci podejmowania decyzji opartych na danych i automatyzacji.
Przyk艂ad: Bran偶a detaliczna - Globalny detalista chce dostarcza膰 dane o zapasach w czasie rzeczywistym ze swojego systemu zarz膮dzania zapasami opartego na mainframe do swojej platformy e-commerce. Wdro偶ono us艂ug臋 opakowuj膮c膮, aby wyodr臋bni膰 dane o zapasach i przedstawi膰 je za pomoc膮 RESTful API platformie e-commerce. Platforma mo偶e u偶ywa膰 API do dostarczania klientom dok艂adnych informacji o dost臋pno艣ci produkt贸w, zapobiegaj膮c nadmiernej sprzeda偶y i poprawiaj膮c og贸lne do艣wiadczenie zakupowe. System legacy pozostaje w pe艂ni funkcjonalny, podczas gdy do艣wiadczenie klienta ulega poprawie.
Wyb贸r odpowiedniej technologii dla us艂ug opakowuj膮cych
Wyb贸r technologii do budowy us艂ug opakowuj膮cych zale偶y od r贸偶nych czynnik贸w, w tym od charakterystyki systemu legacy, po偶膮danej wydajno艣ci i istniej膮cej infrastruktury IT. Oto kilka popularnych opcji:
- J臋zyki programowania: Java, Python, Node.js i .NET s膮 powszechnie u偶ywane do tworzenia us艂ug opakowuj膮cych. Wyb贸r cz臋sto zale偶y od istniej膮cej wiedzy w organizacji i specyficznych wymaga艅 projektu.
- Platformy do zarz膮dzania API: Platformy do zarz膮dzania API, takie jak Apigee, AWS API Gateway i Azure API Management, mog膮 upro艣ci膰 tworzenie, wdra偶anie i zarz膮dzanie us艂ugami opakowuj膮cymi. Platformy te oferuj膮 takie funkcje, jak bezpiecze艅stwo API, zarz膮dzanie ruchem i analityka.
- Platformy integracyjne: Enterprise Service Bus (ESB) i platformy integracyjne, takie jak MuleSoft i IBM App Connect, zapewniaj膮 kompleksowy zestaw narz臋dzi do integracji system贸w i zarz膮dzania API.
- Konteneryzacja: Technologie konteneryzacji, takie jak Docker i Kubernetes, mog膮 by膰 u偶ywane do pakowania i wdra偶ania us艂ug opakowuj膮cych, czyni膮c je bardziej przeno艣nymi, skalowalnymi i 艂atwiejszymi w zarz膮dzaniu. Poprawia to zwinno艣膰 i umo偶liwia efektywniejsze wykorzystanie zasob贸w.
- Platformy low-code/no-code: W przypadku prostszych wymaga艅 dotycz膮cych us艂ug opakowuj膮cych, platformy low-code/no-code mog膮 zapewni膰 szybszy i bardziej wydajny spos贸b tworzenia i wdra偶ania API.
Rzeczywiste przyk艂ady dzia艂ania us艂ug opakowuj膮cych
Us艂ugi finansowe: Wiele bank贸w i instytucji finansowych wykorzystuje us艂ugi opakowuj膮ce do modernizacji swoich g艂贸wnych system贸w bankowych, umo偶liwiaj膮c im oferowanie nowych us艂ug cyfrowych, takich jak aplikacje bankowo艣ci mobilnej i platformy p艂atno艣ci online, bez zak艂贸cania ich podstawowej dzia艂alno艣ci. Europejski bank wykorzysta艂 us艂ugi opakowuj膮ce do integracji swojego g艂贸wnego systemu bankowego opartego na mainframe z now膮 aplikacj膮 mobiln膮, umo偶liwiaj膮c klientom dost臋p do swoich kont, dokonywanie transakcji i zarz膮dzanie finansami z urz膮dze艅 mobilnych. Bank m贸g艂 szybko wprowadza膰 nowe us艂ugi cyfrowe.
Opieka zdrowotna: Organizacje opieki zdrowotnej u偶ywaj膮 us艂ug opakowuj膮cych do integracji swoich system贸w Elektronicznej Dokumentacji Medycznej (EHR) z nowoczesnymi aplikacjami i platformami analityki danych, co umo偶liwia lepsz膮 opiek臋 nad pacjentem i bardziej wydajne operacje. Du偶y ameryka艅ski dostawca us艂ug medycznych stworzy艂 us艂ugi opakowuj膮ce, aby udost臋pni膰 dane pacjent贸w ze swojego systemu EHR, umo偶liwiaj膮c lekarzom dost臋p do informacji o pacjentach na urz膮dzeniach mobilnych, usprawniaj膮c 艣wiadczenie opieki i poprawiaj膮c wyniki leczenia pacjent贸w. Zastosowanie API przyspieszy艂o wdra偶anie nowych system贸w.
Produkcja: Producenci u偶ywaj膮 us艂ug opakowuj膮cych do integracji swoich system贸w realizacji produkcji (MES) z nowymi systemami zarz膮dzania 艂a艅cuchem dostaw, poprawiaj膮c widoczno艣膰 艂a艅cucha dostaw i optymalizuj膮c procesy produkcyjne. Globalny producent samochod贸w stworzy艂 us艂ugi opakowuj膮ce, aby udost臋pni膰 dane ze swojego MES do systemu zarz膮dzania 艂a艅cuchem dostaw, optymalizuj膮c procesy produkcyjne just-in-time i redukuj膮c koszty produkcji. Ten przyk艂ad podkre艣li艂 warto艣膰 usprawnienia przep艂ywu informacji w z艂o偶onych systemach.
Wyzwania i uwarunkowania
Chocia偶 us艂ugi opakowuj膮ce oferuj膮 liczne korzy艣ci, istniej膮 r贸wnie偶 pewne wyzwania, kt贸re nale偶y wzi膮膰 pod uwag臋:
- Z艂o偶ono艣膰 system贸w legacy: Z艂o偶ono艣膰 system贸w legacy mo偶e utrudnia膰 zrozumienie ich funkcjonalno艣ci i projektowanie skutecznych us艂ug opakowuj膮cych. Niezb臋dna jest dog艂臋bna analiza i dokumentacja.
- W膮skie gard艂a wydajno艣ci: Niew艂a艣ciwie zaprojektowane us艂ugi opakowuj膮ce mog膮 wprowadza膰 w膮skie gard艂a wydajno艣ci, potencjalnie spowalniaj膮c ca艂y system. Kluczowa jest szczeg贸lna uwaga na optymalizacj臋 wydajno艣ci.
- Ryzyka bezpiecze艅stwa: Us艂ugi opakowuj膮ce mog膮 wprowadza膰 nowe luki w zabezpieczeniach, je艣li nie s膮 odpowiednio chronione. Wdro偶enie solidnych 艣rodk贸w bezpiecze艅stwa jest najwa偶niejsze.
- Utrzymanie i wsparcie: Utrzymanie i wspieranie us艂ug opakowuj膮cych mo偶e wymaga膰 specjalistycznych umiej臋tno艣ci i wiedzy. Odpowiednia dokumentacja i szkolenia s膮 niezb臋dne dla d艂ugoterminowego sukcesu.
- Zarz膮dzanie i standaryzacja: Ustan贸w jasne polityki zarz膮dzania i wytyczne standaryzacji, aby zapewni膰 sp贸jno艣膰 i zarz膮dza膰 og贸ln膮 ewolucj膮 us艂ug opakowuj膮cych w ca艂ej organizacji.
Przysz艂o艣膰 integracji system贸w legacy i us艂ug opakowuj膮cych
W miar臋 jak firmy kontynuuj膮 transformacj臋 cyfrow膮, znaczenie integracji system贸w legacy i us艂ug opakowuj膮cych b臋dzie tylko ros艂o. Trendy, na kt贸re warto zwr贸ci膰 uwag臋, to:
- Adopcja mikrous艂ug: Coraz wi臋cej organizacji b臋dzie przyjmowa膰 architektury mikrous艂ug, a us艂ugi opakowuj膮ce b臋d膮 odgrywa膰 kluczow膮 rol臋 w umo偶liwianiu integracji system贸w legacy z tymi architekturami.
- Podej艣cie API-first: Organizacje b臋d膮 coraz cz臋艣ciej przyjmowa膰 podej艣cie API-first, w kt贸rym API s膮 traktowane jako pierwszorz臋dny element i g艂贸wny spos贸b dost臋pu i udost臋pniania funkcjonalno艣ci, promuj膮c ponowne wykorzystanie i modularno艣膰.
- Zwi臋kszona automatyzacja: Automatyzacja b臋dzie odgrywa膰 coraz wi臋ksz膮 rol臋 w tworzeniu, wdra偶aniu i zarz膮dzaniu us艂ugami opakowuj膮cymi, skracaj膮c czas i wysi艂ek wymagany do integracji system贸w.
- Integracja oparta na sztucznej inteligencji: Sztuczna inteligencja (AI) i uczenie maszynowe (ML) b臋d膮 wykorzystywane do automatyzacji odkrywania i integracji funkcjonalno艣ci system贸w legacy, dodatkowo usprawniaj膮c ten proces.
- Integracja natywna dla chmury: Rozwi膮zania integracyjne natywne dla chmury (cloud-native) b臋d膮 coraz popularniejsze, oferuj膮c wi臋ksz膮 skalowalno艣膰, zwinno艣膰 i op艂acalno艣膰.
Podsumowuj膮c, us艂ugi opakowuj膮ce s膮 kluczow膮 strategi膮 dla organizacji, kt贸re chc膮 zniwelowa膰 luk臋 mi臋dzy systemami legacy a nowoczesnymi technologiami. Hermetyzuj膮c funkcjonalno艣膰 legacy za dobrze zdefiniowanymi API, organizacje mog膮 chroni膰 swoje istniej膮ce inwestycje, zmniejsza膰 ryzyko, skraca膰 czas wprowadzania produkt贸w na rynek i poprawia膰 swoj膮 og贸ln膮 zwinno艣膰. W miar臋 ewolucji technologii, us艂ugi opakowuj膮ce pozostan膮 kluczowym elementem ka偶dej kompleksowej strategii modernizacji IT.